// copyright jyz.2024

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "AuraHUD.generated.h"

class UAttributeMenuWidgetController;
struct FWidgetControllerParams;
class UOverlayWidgetController;
class UAuraUserWidget;
class UAbilitySystemComponent;
class UAttributeSet;
/**
 * 
 */
UCLASS()
class AURARPGDEMO_API AAuraHUD : public AHUD
{
	GENERATED_BODY()
public:
	
	void InitOverlay(APlayerController*PC,APlayerState* PS, UAbilitySystemComponent* ASC,UAttributeSet*AS);
	FORCEINLINE UOverlayWidgetController* GetOverlayWidgetController()const{return OverlayWidgetController;}
	FORCEINLINE UAttributeMenuWidgetController* GetAMWidgetController()const{return AMWidgetCtrl;}
protected:
	UPROPERTY(BlueprintReadOnly,Category="HUD")
	TObjectPtr<UAuraUserWidget> OverlayWidget;
	
	UPROPERTY(EditAnywhere,Category="HUD")
	TSubclassOf<UAuraUserWidget> WBP_OverlayClass;
	
	UPROPERTY(EditAnywhere,Category="HUD")
	TSubclassOf<UOverlayWidgetController> OverlayWidgetControllerClass;
	UPROPERTY(EditAnywhere,Category="HUD")
	TSubclassOf<UAttributeMenuWidgetController> AMWidgetCtrlClass;
private:
	UPROPERTY()
	TObjectPtr<UOverlayWidgetController> OverlayWidgetController;
	UPROPERTY()
	TObjectPtr<UAttributeMenuWidgetController> AMWidgetCtrl;
};
